using System.ComponentModel.DataAnnotations;
using Volo.Abp.Identity;

namespace UserManagementService.DTOs;
using Volo.Abp.Application.Dtos;

/// <summary>
/// 创建用户DTO
/// </summary>
public class CreateUserDto : IdentityUserCreateDto
{
    /// <summary>
    /// 手机号
    /// </summary>
    [StringLength(20)]
    public new string? PhoneNumber { get; set; }

    /// <summary>
    /// 员工编号
    /// </summary>
    [StringLength(50)]
    public string? EmployeeNumber { get; set; }

    /// <summary>
    /// 部门ID
    /// </summary>
    public Guid? DepartmentId { get; set; }

    /// <summary>
    /// 职位
    /// </summary>
    [StringLength(100)]
    public string? Position { get; set; }

    /// <summary>
    /// 上级ID
    /// </summary>
    public Guid? ManagerId { get; set; }

    /// <summary>
    /// 入职日期
    /// </summary>
    public DateTime? HireDate { get; set; }

    /// <summary>
    /// 备注
    /// </summary>
    [StringLength(500)]
    public string? Remark { get; set; }

    /// <summary>
    /// 扩展属性（JSON格式）
    /// </summary>
    public string? Properties { get; set; }

    /// <summary>
    /// 是否发送欢迎邮件
    /// </summary>
    public bool SendWelcomeEmail { get; set; } = true;

    /// <summary>
    /// 是否需要用户首次登录时修改密码
    /// </summary>
    public bool ForcePasswordChangeOnFirstLogin { get; set; } = true;
}